package day12;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;

//测试 File工具类
public class Test5_File {
    public static void main(String[] args) throws IOException {
        //1,创建对象 -- 参数 是你要加载的 文件的 路径
        File file = new File("D:\\iotest\\2.txt");
        //2,调用方法
        System.out.println( file.length() );//获取文件的字节量
        System.out.println( file.exists() );//判断文件是否存在
        System.out.println( file.isFile() );//判断是文件吗
        System.out.println( file.isDirectory() );//判断是文件夹吗
        System.out.println( file.getName() );//获取文件名
        System.out.println( file.getParent() );//获取文件的父路径
        System.out.println( file.getAbsolutePath() );//获取文件的全路径

        System.out.println( file.createNewFile() );//创建新文件
        System.out.println( file.delete() );//删除文件

        file = new File("D:\\iotest\\a");
        System.out.println( file.mkdir() );//新建 一层不存在的 文件夹

        file = new File("D:\\iotest\\m\\n\\q");
        System.out.println( file.mkdirs() );//新建 多层不存在的 文件夹
        System.out.println( file.delete() );//删除 空的 文件夹

        file = new File("D:\\iotest");
        //列出文件夹资源,并把文件名 存入String[]
        String[] strs = file.list();
        System.out.println(  Arrays.toString(strs)  );//[1.txt, a, m]

        //列出文件夹资源,把每个资源封装成File对象存入File[]--推荐!!
        File[] fs = file.listFiles();
        //[D:\iotest\1.txt, D:\iotest\a, D:\iotest\m]
        System.out.println( Arrays.toString(fs) );

        //计算文件夹里的 文件的总大小
        // 1,指定文件夹
        File file2 = new File("D:\\iotest");
        // 2,列出文件夹里的资源
        File[] a = file2.listFiles();
        long sum = 0 ;//定义变量,记录总和
        //加: 遍历数组,获取每个资源a[i]
        for (int i = 0; i < a.length ; i++) {
           // 3,判断 ,是文件 就求和
            if( a[i].isFile() ){
                sum = sum + a[i].length() ; //求和
            }else if( a[i].isDirectory() ){
           // 4,判断,是文件夹 就打印文件夹名
                System.out.println( a[i].getName() );
            }
        }
        System.out.println("文件总大小是:"+sum);
    }
}
